package com.yxw.system.annotation;

import com.yxw.system.enums.BusinessType;
import com.yxw.system.enums.OperatorType;

import java.lang.annotation.*;

/**
 * @className: com.yxw.system.annotation.Log
 * @description: 自定义操作日志记录注解
 * @author: tommy
 * @create: 2023-08-05 下午 03:38
 */

//注解可以加在什么位置
@Target({ElementType.PARAMETER,ElementType.METHOD})
//在什么时候起作用(作用范围:可以在程序运行时通过反射来访问和解析这个注解)
@Retention(RetentionPolicy.RUNTIME)
//注解表示该注解应该包含在生成的Java文档中，以提供注解的说明和使用示例。
@Documented
public @interface Log {
    /**
     * 模块
     */
    public String title() default "";

    /**
     * 功能
     */
    public BusinessType businessType() default BusinessType.OTHER;

    /**
     * 操作人类别
     */
    public OperatorType operatorType() default OperatorType.MANAGE;

    /**
     * 是否保存请求的参数
     */
    public boolean isSaveRequestData() default true;

    /**
     * 是否保存响应的参数
     */
    public boolean isSaveResponseData() default true;

}
